package com.atguigu.dao.impl;

import com.atguigu.dao.ProductDao;
import com.atguigu.pojo.Product;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class ProductDaoImpl implements ProductDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    /**
     * 持久层的方法：
     *  查询所有商品的总数据量，count函数查询
     *  返回结果集long
     */
    public Long queryProductByCount() {
        String sql = "select count(pid) from product";
        return jdbcTemplate.queryForObject(sql,Long.class);
    }

    /**
     * 持久层的方法：
     *  limit分页查询商品数据
     *  业务层传递参数：(当前页-1)*每页显示多少条， 每页显示多少条
     *  (当前页-1)*每页显示多少条 业务层已经计算好的结果
     *  查询结果返回List集合<Product>
     */
    public List<Product> queryProductByPage(Integer currentPage, Integer pageSize) {
        //limit分页查询的SQL语句
        String sql = "select * from product limit ?,?";
        return jdbcTemplate.query(sql,
                new BeanPropertyRowMapper<Product>(Product.class),currentPage,pageSize);
    }
}
